import { enableProdMode } from '@angular/core';
import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';

import { AppModule } from './app/app.module';

// * 必须后跟 as 一个别名；
// 使用了 * as 后，别名本身总是一个对象，模块中导出的变量、类、函数等都在该对象里。
// 所以下面就必须使用 AppModule.AppModule 才能成功。
// import * as AppModule1 from'./app/app.module';

// 理解有误，跟nodejs、es6 的模块化不同。
// 这里只是 typescript 的语法而已。
// import { AppModule } from './app/app.test.module';
import * as AppModule2 from './app/app.test.module';


import { environment } from './environments/environment';

if (environment.production) {
  enableProdMode();
}

// console.log(1111111111);
// 仅仅import，并不会执行引入模块中的 console.log 的代码。
// 即使仅仅new 一个实例，也会执行引入模块中的 console.log。
// new AppModule();
// 甚至：仅仅写出来这个类名，什么都不干，也会执行。
AppModule


// 启动的模块的文件中，应该具有 @NgModule 的执行，否则就报错：Error: No NgModule metadata found for 'AppModule'.
// 不过，编译本身是成功的。
platformBrowserDynamic().bootstrapModule(AppModule2.AppModule)
  .catch(err => console.log(err));
